#ifndef __I_RENDER_TARGET_H__
#define __I_RENDER_TARGET_H__

#include "RenderEngineCommon.h"
namespace rkt
{
	class RenderTargetDesc
	{
	public:
		unsigned int width;
		unsigned int height;
		unsigned int colorBits;
		unsigned int depthBits;
		FilterOptions min;
		FilterOptions mag;
		FilterOptions mip;
		TextureAddressingMode s;
		TextureAddressingMode t;

		RenderTargetDesc()
			:width(0),height(0)
			,colorBits(32)
			,depthBits(16)
			,min(FO_LINEAR)
			,mag(FO_LINEAR)
			,mip(FO_LINEAR)
			,s(TAM_CLAMP_TO_EDGE)
			,t(TAM_CLAMP_TO_EDGE)
		{}
	};

	struct Rect;
	struct ITexture;
	struct IRenderTarget
	{
		virtual void 		release() = 0;
		virtual const ITexture*	getTexture() = 0;
		virtual void 		onAttach() = 0;
		virtual void 		onDetach() = 0;
		virtual void 		onEndFrame(int layer = 0) = 0;
		virtual bool		getTextureData(void  *pData) = 0;
		virtual void		getRect(Rect *rc) = 0;
	};
}
#endif